Les ensembles (set)

  • Les ensembles sont des objets mutables.
  • Ils contiennent des objets qui sont uniques et non mutables. Ainsi, un ensemble ne peut pas contenir une liste !
  • Il n'y a pas d'indexation des valeurs !

I) Définition

a) Définition directe

In [30]:
#séquence simple
s={1,2,3}
print(s)
{1, 2, 3}
In [2]:
#les répétitions disparaissent
s={1,2,3,1,2,2,3,5}
print(s)
{1, 2, 3, 5}
In [28]:
#définition d'une séquence vide. Attention {} crée un dictionnaire vide.
s=set()
print(s)
set()

b) Conversion d'une liste

In [5]:
L=[1,2,3,5,4,3,2,1]
s=set(L)
print(L)
print(s)
[1, 2, 3, 5, 4, 3, 2, 1]
{1, 2, 3, 4, 5}

c) Par compréhension

In [7]:
# Les restes par la division par 13
s={x%13 for x in range(1000)}
print(s)
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

II) Manipulation

Il n'y a pas d'indexation des éléments, contrairement aux listes.

In [8]:
s=set(range(10))
print(s)
print(s[2])
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-8-22d6c54ebbe9> in <module>
      1 s=set(range(10))
      2 print(s)
----> 3 print(s[2])

TypeError: 'set' object does not support indexing

a) Parcours par une boucle

In [11]:
# l'ordre est surprenant !
s={"a","b","c"}
print(s)
for el in s :
    print(el)
{'b', 'c', 'a'}
b
c
a

b) Ajout ou suppression

In [17]:
# ajoute un élément s'il est absent
s={"a","b","c"}
s.add("a") # aucune action ici
s.add("d")
print(s)
{'d', 'b', 'c', 'a'}
In [18]:
# enléve un élément s'il est présent
s={"a","b","c"}
s.discard("e") # aucune action ici
s.discard("a")
print(s)
{'b', 'c'}

c) Union, intersection, diffférence, comparaison

In [19]:
#union de deux ensembles
sa={1,2,3,4}
sb={3,4,5,6,7}

s=sa|sb
print(s)
{1, 2, 3, 4, 5, 6, 7}
In [20]:
#intersection de deux ensembles
sa={1,2,3,4}
sb={3,4,5,6,7}

s=sa&sb
print(s)
{3, 4}
In [21]:
#différence de deux ensembles
sa={1,2,3,4}
sb={3,4,5,6,7}

print(sa-sb)
print(sb-sa)
{1, 2}
{5, 6, 7}
In [26]:
#comparaison de deux ensembles
sa={3,4}
sb={3,4,5,6,7}

print(sa==sb) #égalité ?
print(sa<sb)  # inclusion ?
False
True
In [ ]:
 
In [ ]:
 
In [ ]: